Workflows are currently used to describe methods or processes in many fields such as job-shop scheduling, enterprise resource planning (ERP), customer relationship management (CRM), document lifecycle management, business process management and the like. A workflow is often represented as a flowchart for example and comprises a collection of tasks and specified as order (or at least a partial order) for carrying out the tasks. A workflow may also comprise conditions for invoking tasks and typically resources or sets of resources are pre-assigned for each task. Those resources may be factory equipment for example in the case of job-shop scheduling or may be any other resource including human agents. Workflow engines are used to control execution of specified workflows and determine when a process is ready to move to a next step.
Windows Workflow Foundation (trade mark) provided as part of the .NET Framework 3.0 is a technology for defining, executing and managing workflows. This enables a workflow such as a flowchart model to be instantiated as part of a program runtime. In Windows Workflow Foundation workflows comprise activities which may be tasks to be completed by a human or machine. For example, “send goods” might be an activity in a business process. Resources or sets of resources are pre-assigned for each activity.